package chap1_2;
import java.io.File;
import java.io.IOException;

/**
 * @author https://gitee.com/W_Jun
 * @version 1.0
 * @Description  File类创建功能的演示
 */
public class FileDemo02 {
    public static void main(String[] args) throws IOException {
        //需求1：我要在D:\\project目录下创建一个文件java.txt
        File f1 = new File("D:\\project\\java.txt");
        System.out.println(f1.createNewFile());
        //执行结果：输出 true，查看D:\\project下创建了java.txt
        //注意1：D:project这个路径（或称文件夹）必须是存在的，否则会报异常：java.io.IOException: 系统找不到指定的路径。
        //注意2：如果文件java.txt不存在就创建文件，并返回true。如果文件存在，就不创建文件，并返回false
        System.out.println("----------------------------");

        //需求2：我要在D:\\project目录下创建一个目录JavaSE
        File f2 = new File("D:\\project\\JavaSE");
        System.out.println(f2.mkdir());
        //执行结果：输出 true，查看D:\\project下创建了JavaSE文件夹
        //注意：如果目录JavaSE不存在就创建目录，并返回true。如果目录存在，就不创建目录，并返回false
        System.out.println("----------------------------");

        //需求3：我要在D:\\project目录下创建一个多级目录JavaWEB\\HTML
        File f3 = new File("D:\\project\\JavaWEB\\HTML");
        System.out.println(f3.mkdir());
        //执行结果：输出 false
        //注意：mkdir()不能创建多级目录，应该使用mkdirs()
        System.out.println(f3.mkdirs());//返回true,并且成功创建目录
        //注意：mkdirs()使用时，不必要求D:\\project一定存在，不存在的话会创建project这个父目录
        System.out.println("----------------------------");

        //需求4：我要在D:\\project目录下创建一个文件javase.txt
        File f4 = new File("D:\\project\\javase.txt");
        System.out.println(f4.mkdir());
        //创建文件应该用createNewFile方法，但是如果不小心调用mkdir()的话，会创建一个以此命名的目录
        System.out.println(f4.createNewFile());
        //执行结果为false，
        // 因为此前利用mkdir()创建了相同名字的文件夹，即使一个是文件，一个是文件夹，如果名字相同，就无法创建
        System.out.println("----------------------------");

        //补充：如果是不使用绝对路径,文件会被创建到当前项目的目录下
        File f5 = new File("java.txt");
        System.out.println(f5.createNewFile());
    }
}